[IA64] vcpu_get_psr fix
authorawilliam@xenbuild2.aw <awilliam@xenbuild2.aw>
Tue, 2 Jan 2007 22:19:44 +0000 (15:19 -0700)
committerawilliam@xenbuild2.aw <awilliam@xenbuild2.aw>
Tue, 2 Jan 2007 22:19:44 +0000 (15:19 -0700)
mov r1=psr only return PSR{36:35,31:0}

Signed-off-by: Anthony Xu <anthony.xu@intel.com>
xen/arch/ia64/xen/vcpu.c

index 6c3861a3a9891455020eca3affc231d8c5bdf837..da609c8a8e74d9415d7046819f69bb76076ebbeb 100644 (file)
@@ -450,8 +450,6 @@ IA64FAULT vcpu_get_psr(VCPU * vcpu, u64 * pval)
        struct ia64_psr newpsr;
 
        newpsr = *(struct ia64_psr *)&regs->cr_ipsr;
-       if (newpsr.cpl == 2)
-               newpsr.cpl = 0;
        if (!vcpu->vcpu_info->evtchn_upcall_mask)
                newpsr.i = 1;
        else
@@ -469,6 +467,7 @@ IA64FAULT vcpu_get_psr(VCPU * vcpu, u64 * pval)
        else
                newpsr.pp = 0;
        *pval = *(unsigned long *)&newpsr;
+       *pval &= (MASK(0, 32) | MASK(35, 2));
        return IA64_NO_FAULT;
 }